<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数</title>
    <!-- 
        ES6中新增的定义函数的方式
        () => {} 
        const fn = () => {}

     -->
</head>

<body>

</body>
<script>
    function sum(num1, num2) {
        return num1 + num2
    }
    console.log(sum(12, 23));
    //     函数体中只有一句代码，且代码的执行结果就是返回值，可以省略大括号
    const sum1 = (a, b) => a + b
    console.log(sum1(23, 34));

    function fn(a) {
        return a
    }
    console.log(fn(2));
    // 如果形参只有一个，可以省略小括号
    const fn1 = a => a
    console.log(fn1(3));
    console.log('------------------------------');

    // 箭头函数不绑定this关键字，箭头函数中的this，指向的是函数定义位置的上下文this。
    const obj = { name: '张三' }
    function fn() {
        console.log(this);
        return () => {
            console.log(this)
        }
    }
    const resFn = fn.call(obj);
    resFn();
    console.log('------------------');
    var age = 100
    console.log(this);
    var obj1 = {
        age:20,
        say:() => {
            console.log(this);
            console.log(this.age);
        }
    }
    obj1.say()
</script>

</html>